﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Pex.Engine.Domains;
using Microsoft.ExtendedReflection.Metadata;
using Microsoft.ExtendedReflection.Collections;
using PexMe.Core;
using Microsoft.ExtendedReflection.Logging;

namespace PexMe.FactoryRecommender
{
    /// <summary>
    /// Class that provides hints for interfaces 
    /// </summary>
    public class TypeHintProvider
        : IPexTypeHintProvider
    {
        PexMeDynamicDatabase pmd;

        public TypeHintProvider(PexMeDynamicDatabase pmd)
        {
            this.pmd = pmd;
        }
        
        #region IPexTypeHintProvider Members

        public bool TryGetTypeHints(TypeEx type, 
            out IIndexable<TypeDefinition> hints)
        {
            hints = new SafeList<TypeDefinition>();
            this.pmd.Log.LogMessage("Hint provider", "Requested for types of interface: " + type.FullName.ToString());
            return false;
        }

        #endregion
    }
}
